1. Technical Field
The present invention relates to software development environment and more particularly, to applying configuration management concepts to software product line development.
2. Discussion of the Related Art
The challenges of the customer-driven environment in software development are targeted by most companies by creating a product line, being a portfolio of closely related products with variations in features and functions—rather than just a single product. When developing a product line resource, such as the product line code, each piece of code that implements one or more features is marked with the feature it implements. This applies when developing other product line resources such as requirements, tests and so forth.
In order to define specific product out of the product line platform, the required features for this specific product are chosen from the feature model. This list of selected features defines the product. According to the selected features, a specific product can be materialized out of the product line platform by taking only the artifacts that are marked with the product selected features, and not taking other resources.
Software development today is carried out by teams, wherein in each team several developers work concurrently and independently on products of a common product line. When the development is done by teams, a source control tool that manages the evolution of resources over time is crucial. A developer may, at any given time, ask to see updates that were entered by the rest of the team.
When working according to the product line concept described above using a source control, some of the changes can be made directly on the product line context, where all the artifacts of all the products are presented, while other changes may be performed on specific product views. Performing changes on a specific product view is sometimes more convenient since the developer is presented with the relevant artifacts only. This might be much easier to a developer that needs to upgrade a specific product he or she is familiar with.
Currently, when developers wish to work on specific product, they may ask to see updates and in response, they will get all the updates that were made to the product line. In other words, they will be working on the product line in its entirety and get all updated relevant to all products and features, no matter if this change is relevant to their product or not.